\definecolor{turquoise}{RGB}{0,200,180}
\definecolor{orange}{RGB}{230,127,0}
\definecolor{purple}{RGB}{230,0,200}
\definecolor{urple}{RGB}{100,0,200}
\centering
\hspace*{-.2cm}
\begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep, scale=.8]
   \tikzstyle{every pin edge}=[<-,shorten <=1pt]
   \tikzstyle{neuron}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt]
   \tikzstyle{input neuron}=[neuron, fill=green!50];
   \tikzstyle{output neuron}=[neuron, fill=red!50];
   \tikzstyle{hidden neuron}=[neuron, fill=blue!50];
   \tikzstyle{annot} = [text width=4em, text centered];
	\tikzstyle{health}=[rectangle,fill=green];
	\tikzstyle{ehealth}=[rectangle,fill=red];
	\tikzstyle{dist}=[rectangle,fill=blue];
	\tikzstyle{theta}=[rectangle,fill=blue];
	\tikzstyle{action}=[rectangle,fill=orange];
	\tikzstyle{bin}=[rectangle,fill=turquoise];
	\tikzstyle{attr}=[rectangle,fill=purple];
	\tikzstyle{eattr}=[rectangle,fill=urple];

	\node[cloud, cloud puffs=15.7, cloud ignores aspect, minimum width=2cm, minimum height=5cm, align=center, draw] (hidden) at (2, 1.5) {};

    % Draw the input layer nodes
	\node[attr] (attr1) at (0,4) {};
	\node[attr] (attr2) at (0,3.7) {};
	\node[attr] (attr3) at (0,3.4) {};
	\node[annot, text width = 2cm] (attr_annot) at (-2,3.7) {Unit Attributes};
	\foreach \dest in {1,...,3}
		\path (attr_annot) edge (attr\dest);

	\node[health] (ah1) at (0,2.7) {};
	\node[health] (ac1) at (0,2.4) {};
	\node[ehealth] (eh1) at (0,2.1) {};
	\node[ehealth] (ec1) at (0,1.8) {};
	\node[annot, text width = 2.2cm] (allyenemy_annot) at (-2,2) {Unit Health/Count ($\forall$ bins)};
	\foreach \d in {ah1,ac1,eh1,ec1}
		\path (allyenemy_annot) edge (\d);

	\node[eattr] (eattr1) at (0,0.9) {};
	\node[eattr] (eattr2) at (0,0.6) {};
	\node[eattr] (eattr3) at (0,0.3) {};
	\node[eattr] (eattr4) at (0,0.0) {};
	\node[annot, text width = 2.2cm] (eattr_annot) at (-2,.05) {Enemy Attributes  ($\forall$ bins)};
	\foreach \d in {1,...,4}
		\path (eattr_annot) edge (eattr\d);

	\foreach \s in {attr1,attr2,attr3,ah1,ac1,eh1,ec1,eattr1,eattr2,eattr3,eattr4}
		\path (\s) edge (hidden);

	\node[action] (action1) at (4,3) {};
	\node[action] (action2) at (4,2.7) {};
	\node[action] (action3) at (4,2.4) {};
	\node[action] (action4) at (4,2.1) {};
	\node[action] (action5) at (4,1.8) {};

	\foreach \d in {1,...,5}
		\path (hidden) edge (action\d);

	\node[annot, text width=2.3cm] (actions) at (5.3, 2.3) {Action};

	\node[bin] (bin1) at (4,0.1) {};
	\path (hidden) edge (bin1);

	\node[annot, text width=2cm] (bins) at (5.3, .1) {Bins \\ ($\forall$ bins)};

    \node[annot] at (0,5) {Input layer};
    \node[annot] at (2,5) {Hidden layer};
    \node[annot] at (4,5)  {Output layer};
\end{tikzpicture}
